Method and system for establishing multiple connections at a wireless communication device

ABSTRACT

The present invention discloses methods and systems for communicating at a cellular router between a first wireless communication module and a first subscriber identity module (SIM). The cellular router receives a first request from a first wireless communication module and encapsulates the first request in a first modified request. The cellular router then sends the first modified request to a first SIM card in a first communication apparatus and waits for a first modified reply. While waiting for the first modified reply the cellular router sends at least one halt message to the first wireless communication module after a first time threshold. After receiving the first modified reply, the cellular router decapsulates the first modified reply to retrieve a first reply and sends the first reply to the first wireless communication module where the first modified reply is a reply to the first modified request.

RELATED APPLICATIONS

The present application is a continuation application of U.S.application Ser. No. 17/563,319 filed on Dec. 28, 2021, which is acontinuation of U.S. application Ser. No. 16/069,886 filed on Jul. 13,2018, which was the National Stage of International Application No.PCT/IB2018/053983 filed on Jun. 4, 2018, the disclosures of which arehereby incorporated herein in their entireties by specific referencethereto.

TECHNICAL FIELD

The present disclosure relates generally to the field of networkcommunications using subscriber identification module (SIM) cards at anelectronic device and more particularly using a plurality of remote SIMcards.

BACKGROUND ART

The ability to allow a device to communicate with other devices, such asweb servers, Internet of Things (IoT), self-driving vehicles, androuters, through cellular networks is essential for many activities. Theuse of subscriber identification module (SIM) cards is essential fortransmitting and receiving data through a cellular network. In order todeploy and change SIM cards at such device may demand physical access tothe device and SIM cards and impose expensive labour costs. In addition,the logistics involved, such as recoding SIM card usage, choosing thelowest tariff SIM card, and determining when to change SIM card imposeadditional labour cost. It is desirable to have methods and systems thatare able to reduce the labour cost and lower the tariff cost.

SUMMARY OF THE INVENTION

The present invention discloses methods and systems for communicating ata cellular router between a first wireless communication module and afirst subscriber identity module (SIM). According to the presentinvention, the cellular router comprises at least one wirelesscommunication module, at least one processing unit, at least one memory;at least one non-transitory computer readable storage medium for storingprogram instructions executable by the at least one processing unit forreceiving a first request from the first wireless communication module.The cellular router then encapsulates the first request in a firstmodified request and sends the first modified request to a firstcommunication apparatus. After sending the first modified request to thefirst communication apparatus, the cellular router waits for a firstmodified reply. While waiting for the first modified reply the cellularrouter sends at least one halt message to the first wirelesscommunication module after a first time threshold. When the cellularrouter receives the first modified reply, the cellular routerdecapsulates the first modified reply to retrieve a first reply andsends the first reply to the first wireless communication module. Forthe present invention, the first modified reply is a reply to the firstmodified request. The first wireless communication module is housedinside the cellular router or coupled to the cellular router and thefirst SIM is not housed in the cellular router.

According to one of the embodiments of the present invention, the firstmodified request comprises a SIM identification.

According to one of the embodiments of the present invention, the firsttime threshold is between one hundred milliseconds to two seconds.

According to one of the embodiments of the present invention, when aplurality of halt messages are sent to the first wireless communicationmodule, time interval between two consecutive halt messages is no longerthan two seconds.

According to one of the embodiments of the present invention, the atleast one halt message is sent only when first request comprises a fivebytes header.

According to one of the embodiments of the present invention, a breaksignal is sent to the first wireless communication module when length ofthe first request is fewer than five bytes.

According to one of the embodiments of the present invention, the firstreply is stored.

According to one of the embodiments of the present invention, the firstreply is retrieved and sent to the first wireless communication modulewhen a second request is received, and the second request is the same asthe first request.

According to one of the embodiments of the present invention, the secondmodified request is received through aggregated end-to-end connection.

According to one of the embodiments of the present invention, the firstmodified request is sent through an aggregated end-to-end connection.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1A illustrates a scenario for a communication system according toone of the embodiments of the present invention.

FIG. 1B illustrates a scenario for a communication system according toone of the embodiments of the present invention.

FIG. 2A depicts a flowchart illustrating a process according to thecommunication system illustrated in FIG. 1B.

FIG. 2B illustrates a format for a message encapsulated in payload of anIP packet according to one of the embodiments of the present invention.

FIG. 3A illustrates a basic block diagram of a cellular router accordingto one of the embodiments of the present invention.

FIG. 3B illustrates a basic block diagram of a communication apparatusor a SIM bank according to one of the embodiments of the presentinvention.

FIG. 3C illustrates a basic block diagram of a cellular router identicalto cellular router 101 illustrated in FIG. 1B.

FIG. 4A depicts an example sequence diagram illustrating steps andevents for a particular scenario associated with the present invention.

FIG. 4B depicts an example sequence diagram illustrating steps andevents for a particular scenario associated with the present invention.

FIG. 5A depicts an example sequence diagram illustrating steps andevents for a particular scenario associated with the present invention.

FIG. 5B depicts an example sequence diagram illustrating steps andevents for a particular scenario associated with the present invention.

FIG. 6 depicts a sequence diagram illustrating various stages of amessage being transmitted and received between an example wirelesscommunication module and an example SIM card.

FIG. 7 illustrates the structure of a message when an Ethernet is usedto transmit and receive data according to one of the embodiments of thepresent invention.

FIG. 8 illustrates a network diagram according to one of the embodimentsof the present invention

FIG. 9 illustrates sequences of a plurality of embodiments according tothe present invention.

FIG. 10 illustrates a more detailed process of certain steps illustratedin FIG. 9 .

FIG. 11 illustrates a more detailed process of certain steps illustratedin FIG. 9 .

FIG. 12 illustrates a basic block diagram of an exemplary SIM directoryserver according to one of the embodiments of the present invention.

FIG. 13 illustrates a flowchart of processes being performed accordingto one of the embodiments of the present invention.

DETAILED DESCRIPTIONS

The ensuing description provides preferred exemplary embodiment(s) only,and is not intended to limit the scope, applicability or configurationof the invention. Rather, the ensuing description of the preferredexemplary embodiment(s) will provide those skilled in the art with anenabling description for implementing a preferred exemplary embodimentof the invention. It being understood that various changes may be madein the function and arrangement of elements without departing from thespirit and scope of the invention as set forth in the appended claims.

Specific details are given in the following description to provide athorough understanding of the embodiments. However, it will beunderstood by one of ordinary skill in the art that the embodiments maybe practiced without these specific details. For example, circuits maybe shown in block diagrams in order not to obscure the embodiments inunnecessary detail. In other instances, well-known circuits, processes,algorithms, structures, and techniques may be shown without unnecessarydetail in order to avoid obscuring the embodiments.

Also, it is noted that the embodiments may be described as a processwhich is depicted as a flowchart, a flow diagram, a data flow diagram, astructure diagram, or a block diagram. Although a flowchart may describethe operations as a sequential process, many of the operations can beperformed in parallel or concurrently. In addition, the order of theoperations may be re-arranged. A process is terminated when itsoperations are completed, but could have additional steps not includedin the figure. A process may correspond to a method, a function, aprocedure, a subroutine, a subprogram, etc. When a process correspondsto a function, its termination corresponds to a return of the functionto the calling function or the main function.

Embodiments, or portions thereof, may be embodied in programinstructions operable upon a processing unit for performing functionsand operations as described herein. The program instructions making upthe various embodiments may be stored in a non-transitory storagemedium. Moreover, as disclosed herein, the term “non-transitory storagemedium” may represent one or more devices for storing data, includingread only memory (ROM), programmable read-only memory (PROM), erasableprogrammable read-only memory (EPROM), random access memory (RAM),magnetic RAM, core memory, floppy disk, flexible disk, hard disk,magnetic tape, CD-ROM, flash memory devices, a memory card and/or othermachine-readable mediums for storing information. The term“machine-readable medium” includes, but is not limited to portable orfixed storage devices, optical storage mediums, magnetic mediums, memorychips or cartridges, wireless channels and various other mediums capableof storing, containing or carrying instruction(s) and/or data. Amachine-readable medium can be realized by virtualization, and can be avirtual machine-readable medium including a virtual machine-readablemedium in a cloud-based instance.

The term “non-transitory computer-readable medium,” “main memory,”and/or “secondary storage,” as used herein refers to any medium thatparticipates in providing instructions to a processing unit forexecution. The computer-readable medium is just one example of amachine-readable medium, which may carry instructions for implementingany of the methods and/or techniques described herein. Such a medium maytake many forms, including but not limited to, non-volatile media,volatile media, and transmission media. Non-volatile media includes, forexample, optical or magnetic disks. Volatile media includes dynamicmemory. Transmission media includes coaxial cables, copper wire andfiber optics. Transmission media can also take the form of acoustic orlight waves, such as those generated during radiowave and infrared datacommunications.

A volatile storage may be used for storing temporary variables or otherintermediate information during execution of instructions byprocessor/processing unit. A non-volatile storage or static storage maybe used for storing static information and instructions for processor,as well as various system configuration parameters.

The storage medium may include a number of software modules that may beimplemented as software code to be executed by the processing unit usingany suitable computer instruction type. The software code may be storedas a series of instructions or commands, or as a program in the storagemedium.

Various forms of computer readable media may be involved in carrying oneor more sequences of one or more instructions to the processor forexecution. For example, the instructions may initially be carried on amagnetic disk from a remote computer. Alternatively, a remote computercan load the instructions into its dynamic memory and send theinstructions to the system that runs the one or more sequences of one ormore instructions.

A processing unit may be a microprocessor, a microcontroller (MCU), adigital signal processor (DSP), any combination of those devices, or anyother circuitry configured to process information. A processing unitexecutes program instructions or code segments for implementingembodiments of the present invention. Furthermore, embodiments may beimplemented by hardware, software, firmware, middleware, microcode,hardware description languages, or any combination thereof. Whenimplemented in software, firmware, middleware or microcode, the programinstructions to perform the necessary tasks may be stored in a computerreadable storage medium. A processing unit(s) can be realized byvirtualization, and can be a virtual processing unit(s) including avirtual processing unit in a cloud-based instance.

A SIM card is a subscriber identification module (SIM). Those who areskilled in the art would appreciate that SIM and SIM card may be usedinterchangeably when referring to a physical SIM. It is also common toSIM as subscriber identity module.

Embodiments of the present invention are related to the use of acomputer system for implementing the techniques described herein. In anembodiment, the inventive processing units may reside on a machine suchas a computer platform. According to one embodiment of the invention,the techniques described herein are performed by computer system inresponse to the processing unit executing one or more sequences of oneor more instructions contained in the volatile memory. Such instructionsmay be read into the volatile memory from another computer-readablemedium. Execution of the sequences of instructions contained in thevolatile memory causes the processing unit to perform the process stepsdescribed herein. In alternative embodiments, hard-wired circuitry maybe used in place of or in combination with software instructions toimplement the invention. Thus, embodiments of the invention are notlimited to any specific combination of hardware circuitry and software.

A code segment, such as program instructions, may represent a procedure,a function, a subprogram, a program, a routine, a subroutine, a module,a software package, a class, or any combination of instructions, datastructures, or program statements. A code segment may be coupled toanother code segment or a hardware circuit by passing and/or receivinginformation, data, arguments, parameters, or memory contents.Information, arguments, parameters, data, etc. may be passed, forwarded,or transmitted via any suitable means including memory sharing, messagepassing, token passing, network transmission, etc.

Alternatively, hardwired circuitry may be used in place of, or incombination with, software instructions to implement processesconsistent with the principles of the invention. Thus, implementationsconsistent with principles of the invention are not limited to anyspecific combination of hardware circuitry and software.

A network interface that may be provided by a node is an Ethernetinterface, a frame relay interface, a fibre optic interface, a cableinterface, a DSL interface, a token ring interface, a serial businterface, a universal serial bus (USB) interface, Firewire interface,Peripheral Component Interconnect (PCI) interface, a cellular modem,etc.

A network interface may be implemented by a standalone electroniccomponent or may be integrated with other electronic components. Anetwork interface may have no network connection or at least one networkconnection depending on the configuration. A network interface may be anEthernet interface, a frame relay interface, a fibre optic interface, acable interface, a Digital Subscriber Line (DSL) interface, a token ringinterface, a serial bus interface, a universal serial bus (USB)interface, Firewire interface, Peripheral Component Interconnect (PCI)interface, a cellular modem, etc.

A network interface may connect to a wired or wireless access network.An access network may carry one or more network protocol data. A wiredaccess network may be implemented using Ethernet, fiber optic, cable,DSL, frame relay, token ring, serial bus, USB, Firewire, PCI, or anymaterial that can pass information. A wireless access network may beimplemented using infrared, High-Speed Packet Access (HSPA), HSPA+, LongTerm Evolution (LTE), WiMax, GPRS, EDGE, GSM, CDMA, WiFi, CDMA2000,WCDMA, TD-SCDMA, BLUETOOTH, WiBRO, Evolution-Data Optimized (EV-DO);Digital Enhanced Cordless Telecommunications (DECT); Digital AMPS(IS-136/TDMA); Integrated Digital Enhanced (iDEN) or any other wirelesstechnologies.

Embodiments, or portions thereof, may be embodied in a computer datasignal, which may be in any suitable form for communication over atransmission medium such that it is readable for execution by afunctional device (e.g., processing unit) for performing the operationsdescribed herein. The computer data signal may include any binarydigital electronic signal that can propagate over a transmission mediumsuch as electronic network channels, optical fibers, air,electromagnetic media, radio frequency (RF) links, and the like, andthus the data signal may be in the form of an electrical signal, opticalsignal, radio frequency or other wireless communication signal, etc. Thecode segments may, in certain embodiments, be downloaded via computernetworks such as the Internet, an intranet, LAN, MAN, WAN, the PSTN, asatellite communication system, a cable transmission system, and/or thelike.

FIG. 1A illustrates a scenario for a communication system according toone of the embodiments of the present invention. Communication system120 comprises communication apparatus 114 connected to cellular router111 via connection 112. A cellular router may be a cellular router withcellular connectivity capability.

Cellular router 111 and communication apparatus 114 further comprisesmicrocontroller units (MCUs) and other related circuitries notillustrated herein in FIG. 1A for simplicity.

Communication apparatus 114 and cellular router 111 are connected byconnection 112. Connection 112 is used to transmit data including SIMcard information between communication apparatus 114 and cellular router111. One end of connection 112 is connected to cellular router 111 andthe other end of connection 112 is connected to communication apparatus114. LDP 117 can perform as a WAN interface for communication apparatus114 and is used for sending and receiving data including SIM cardinformation. RDP 116 is used for sending and receiving data includingSIM card information and can perform as a LAN interface for cellularrouter 111.

Connection 112 may be comprised of one or more wires, such as a CAT-5cable and power may be injected into the CAT-5 cable following the Powerover Ethernet (PoE) standards. Cellular router 111 may draw powerthrough connection 112 from communication apparatus 114 using PoEtechniques.

In one variant, cellular router 111 provides power through connection112 to communication apparatus 114 also using PoE techniques. There isno limitation a cable must be used to connect communication apparatus114 and cellular router 111. Wireless communication technologies such asWiFi and infrared communication can be used to replace connection 112.

Antenna 113 is connected to cellular router 111 to transmit and receiveelectrical signal to and from base station 108. Cellular router 111 iscapable of using antenna 113 to communicate wirelessly.

When there is a SIM card inserted into SIM socket 115, SIM cardinformation of the SIM card is transmitted to or received from cellularrouter 111. By using the SIM card information, cellular router 111 isable to connect to a wireless network. There is no limitation in thenumber of SIM sockets 115 in communication apparatus 114 for the presentembodiment. Each of SIM sockets 115 is capable of holding one SIM card.There is no limitation that the SIM cards must be issued by the samewireless service providers. In one example, the SIM cards are issued byfive wireless service providers in five different countries. The varietyof providers of SIM cards allows cellular router 111 to use differentSIM cards according to different needs.

Communication apparatus 114 has LAN interface 118 for connecting to oneor more hosts and/or nodes for transmitting and receiving information.For example, hosts and/or nodes form a LAN with communication apparatus114 via LAN interface 118. Communication apparatus 114 may also performas an Internet router or gateway for the hosts and/or nodes. The numberof LAN interface 118 is not limited to one. For example, communicationapparatus 114 may have multiple LAN interfaces 118. LAN interface 118may be a wired LAN interface, a wireless LAN interface or a combinationof wired LAN interfaces and wireless LAN interfaces. For example, LANinterface 118 can be a wired Ethernet interface. In another example, LANinterface 118 can be an IEEE 802.11 based LAN interface.

In one variant, communication apparatus 114 is an Ethernet switch orhub. LDP 117 then becomes a LAN interface. Communication apparatus 114is capable of connecting to one or more hosts and/or nodes. Cellularrouter 111 performs as an Internet router or gateway for the hosts andnodes connected to communication apparatus 114.

FIG. 1B illustrates a scenario for a communication system according toone of the embodiments of the present invention. Communication system100 comprises cellular router 101 and communication apparatus 105connected via interconnected networks 103. Cellular router 101 comprisesone or more network interfaces 102, a plurality of wirelesscommunication modules 109 and a plurality of antennae 107. Cellularrouter 101 is connectable to one or more a wireless communicationnetworks or cellular networks associated with base station(s) 108 usingwireless communication module(s) 109 and antenna(s) 107. Communicationapparatus 105 comprises network interface 104 and SIM socket 106. SIMsocket 106 may represent one or a plurality of SIM cards for use incommunication apparatus 105. Cellular router 101 and communicationapparatus 105 further comprises MCUs, and other related circuitries notillustrated herein in FIG. 1B for simplicity. FIG. 1B should be viewedin conjunction with FIG. 2A. FIG. 2A depicts a flowchart illustrating aprocess according to communication system 100 illustrated in FIG. 1B.

In steps 201 and 202, cellular router 101 and communication apparatus105 are provided respectively.

In step 203, cellular router 101 is allowed to register withinterconnected networks 103 using wireless communication module 109 aembedded in cellular router 101 and a first SIM card plugged into a SIMsocket of cellular router 101. The first SIM card plugged into a SIMsocket of cellular router 101 are not illustrated herein FIG. 1B forsimplicity. Interconnected networks 103 can be a foreign locallyaccessible cellular network or an interconnection of cellular networks.A foreign locally accessible network is a home network associated withthe local SIM cards in the overseas region. The home network isaccessible by international SIM cards but with roaming charges. Theroaming charges depend on the destination and type of roaming availablethere. After cellular router 101 is registered with interconnectednetworks 103, a first data connection or a first data link isestablished between cellular router 101 and communication apparatus 105through wireless communication module 109 a. The first data connectionor first data link established is preferred to be temporary and maynecessitate roaming charges while initiating the connection withcommunication apparatus 105.

In one variant, cellular router 101 is capable of accessing the Internetthrough a connection. The first data connection can be established notusing a cellular connection, but instead using, for example, a Wi-Ficonnection, a wired connection, or by using any other availabletechniques. Then, cellular router 101 may communicate with communicationapparatus 105 via the first data connection. In such case there is noneed of using a first SIM card and wireless communication module 109 aand to register with interconnected networks 103.

In step 204, cellular router 101 sends a request to communicationapparatus 105 for using a second SIM card. The request contains routerinformation and is sent using the first data connection. Upon receivingthe request, communication apparatus 105 selects a second SIM card fromSIM socket 106 at step 205. The selection of the second SIM card can bebased on various factors such as geographical coverage area, connectionbandwidth, time, network identity, service provider, usage price andsignal quality. It is preferred that the second SIM card can beregistered for local benefit of the services provided by interconnectednetworks 103 such that the use of the second SIM card does not incurroaming charges. Router information may include the identity of cellularrouter 101, identity of administrator of cellular router 101, cellularnetworks that can be connected by the wireless communication module 109a, identity of the cellular network that is currently registered by thewireless communication module 109 a and location of cellular router 101.Identity of cellular router 101 may include a serial number of cellularrouter 101. Identity of cellular router 101 may also include one or moreMAC addresses assigned to cellular router 101. The location of thecellular router 101 may comprise of GPS coordinates provided by a GPSsensor in cellular router 101 or may be entered by a user of cellularrouter 101.

The request may also include authentication information. Theauthentication information is to authenticate the request is sent by avalid user or device. For example, a rogue network host may steal routerinformation and pretend to be cellular router 101 in order to use a SIMcard in communication apparatus 105. The use of authenticationinformation will try to reduce the probability of such stealing.

Communication apparatus 105 replies to the request with SIM cardinformation and the identity of the second SIM card. Communicationapparatus 105 also reserves the second SIM card for a period-of-time forthe use of cellular router 101.

In step 206, cellular router 101 receives the reply from communicationapparatus 105. Router MCU of cellular router 101 is then ready forwireless communication module 109 b to use the second SIM card. Theselected second SIM card is assigned to the wireless communicationmodule 109 b. Router MCU in cellular router 101 then initiates thewireless communication module 109 b. Wireless communication module 109 bwill then send out an ATR (Answer To Reset). Upon receiving the ATR,router MCU of cellular router 101 will send the ATR to communicationapparatus 105 following the sequences illustrated herein FIG. 6 .

In step 207, wireless communication module 109 b is then able toregister with interconnected networks 103 using part or all of SIM cardinformation associated to the selected second SIM card received fromcommunication apparatus 105.

Generally, a wireless network requires cellular router 101 toauthenticate every time an event is initiated or even after a certaintime period has elapsed. Thus, cellular router 101 should be inconnection with communication apparatus 105 for authentication all alongtime.

In step 208, cellular router 101 is now able to connect tointerconnected networks 103 through the wireless communication module109 b. A second data connection is established between cellular router101 and communication apparatus 105 using the wireless communicationmodule 109 b and the selected second SIM card from SIM socket 106. Afterthe second data connection is established, cellular router 101 maintainsconnection with communication apparatus using the wireless communicationmodule 109 b.

In step 209, the first data connection is discontinued and stop usingthe first SIM card. As a result, the user of cellular router 101 doesnot need to incur more roaming cost. The wireless communication module109 a may be reset, restart or stopped. There is no SIM cardinformation, data communication, and SMS message can be transmitted orreceived from the first SIM card while the first SIM card is not used.

In one variant, wireless communication module 109 a to connect tointerconnected networks 103 using SIM card information from a third SIMcard. The third SIM card is a SIM card, other than the SIM cards alreadybeing used in communication apparatus 105 or another SIM card in anothercommunication apparatus. The ability to use wireless communicationmodule 109 a with the third SIM card along with wireless communicationmodule 109 b is to bond the one or more data connections to form anaggregated data connection. An aggregated data connection is capable ofproviding more bandwidth than one individual data connection can. Theaggregated data connection may be perceived as one data connection bysessions or applications that are using it. In one variant, theaggregated data connection may be considered as one VPN connection. Theadditional bandwidth and more reliability provide better performancecomparing to using only wireless communication module 109 b alone. Steps210 to 214 may be skipped when wireless communication module 109 a isnot used to connect to interconnected networks.

In step 210, similar to step 204 but for the third SIM card, cellularrouter 101 sends a request containing router information for using athird SIM card from SIM cards plugged into SIM sockets 106. Processes instep 211 are similar to the process in step 205 but for the third SIMcard.

In step 212, the selected third SIM card is assigned to wirelesscommunication module 109 a. In step 213, cellular router 101 registerswith interconnected networks 103 using the selected third SIM card. Instep 214, cellular router 101 is now also able to connect tointerconnected networks 103 through the wireless communication module109 a.

FIG. 3A illustrates a basic block diagram of an example cellular routeraccording to one of the embodiments of the present invention. Cellularrouter 300 comprises data bus 301, memory 302, processing unit 303,storage unit 304, remote data port (RDP) 305, MCU 306, wirelesscommunication module 307, interface circuits 308, SIM socket 309 networkinterface 310 and antenna 340. Processing unit 303 connects directly tomemory 302.

Processing unit 303 executes program instructions or code segments forimplementing embodiments of the cellular router of the presentinvention.

Memory 302 and storage unit 304 are non-transitory computer readablestorage media. In another embodiment, the storage unit 304 is anon-volatile storage. A non-volatile storage or static storage can beused for storing static information and instructions for processor, aswell as various system configuration parameters. Storage unit 304 can beconfigured to store a firmware. A firmware can be an operating system ofcellular router 300.

RDP 305 sends and receives data including SIM card information to andfrom communication apparatus 320. RDP 305 is also capable of sending andreceiving data to and from MCU 306.

MCU 306 receives SIM card information sent from RDP 305 and transmitsthe SIM card information to wireless communication module 307. MCU 306is further capable of receiving and transmitting messages, keys fromwireless communication module 307 through RDP 305. MCU 306 is also usedto encapsulate and retrieve data, including SIM card information sent toand from communication apparatus 320.

Interface circuits 308 comprise of related circuitries such as busswitches and voltage shifters. Bus switches are used for selecting SIMcard information received from MCU 306 accordingly and voltage shiftersare used to change the voltage from the output of router MCU 306 whenrequired.

Wireless communication module 307 receives SIM card information and thenauthenticates to a wireless communication network or a cellular networkbased on the information via antenna 340. Wireless communication modules307 are also capable of sending messages to MCU 306. There is nolimitation to the number of wireless communication modules for thepresent invention. For example, FIG. 3C illustrates a basic blockdiagram of an example cellular router 330 identical to cellular router101 illustrated in FIG. 1B. FIG. 3C is similar to FIG. 3A but cellularrouter 330 illustrated FIG. 3C further comprises two wirelesscommunication modules 307 a-b directly connecting to interface circuits308 a-b and further to antennae 340 a-b respectively. Interface circuits308 a-b connect directly to SIM sockets 309 a-b and furthermore directlyto MCU 306. Wireless communication module 307 could be housed inside orcoupled to the cellular router. There is no limitation on the number ofwireless communication modules, antennae, SIM sockets and MCU. Forexample, there may be eight wireless communication modules, thirty-twoantennae, sixteen SIM sockets and two MCU. In more details, each MCU isconnect to four wireless communication modules; each wirelesscommunication module is connected to two SIM sockets and four antennae.

Data bus 301 connects processing unit 303 directly or indirectly tostorage unit 304, RDP 305, MCU 306 and wireless communication module307.

FIG. 3B illustrates a basic block diagram of an example communicationapparatus or a SIM bank according to one of the embodiments of thepresent invention.

Communication apparatus 320 comprises processing unit 312, memory 311,storage unit 313, MCU 314, data bus 301, local data port (LDP) 318, LANinterface 317 interface integrated circuits (ICs) 316 and SIM sockets315. Processing unit 312 and memory 311 are connected with each otherdirectly. There is no limitation to the number of interface ICs.

Processing unit 312 executes program instructions or code segments forimplementing embodiments of communication apparatus 320 of the presentinvention.

Memory 311 and storage unit 313 are non-transitory computer readablestorage medium. The storage medium may include a number of softwaremodules that can be implemented as software code to be executed byprocessing unit 312 using any suitable computer instruction type. Thesoftware code may be stored as a series of instructions or commands, oras a program in the storage medium.

LDP 318 is optional and sends and receives data including SIM cardinformation to and from cellular router 300. LDP 318 is also capable ofperforming as a LAN interface.

LAN interface 317 is capable of connecting to one or more hosts and/ornodes for sending and receiving information.

MCU 314 sends and receives data including SIM card information to andfrom SIM cards plugged in SIM sockets 315. MCU 314 is further capable ofsending and receiving data including SIM card information to and fromthe cellular router through LDP 318. MCU 314 is also used to encapsulateand retrieve data, including SIM card information sent to and fromcellular router 300.

Data bus 301 connects processing unit 312 directly or indirectly tostorage unit 313, MCU 314, LAN interface 317 and LDP 318.

Interface ICs 316 are used in conjunction with MCU 314 for communicatingwith the SIM cards plugged in SIM sockets 315. Interface ICs 316 alsoperform for shifting voltage up and down as pin voltage MCU 314 may bedifferent from the pin voltage of SIM cards. There is no limitation thatInterface ICs 316 must be used in conjunction with MCU 314 forcommunicating with the SIM cards plugged in SIM sockets 315. In onevariant MCU 314 connects to SIM cards plugged in SIM sockets 315directly when the pin voltage of MCU 314 is same as the pin voltage ofthe SIM cards. When a SIM card is inserted into or removed from a SIMsocket, such as SIM socket 315 a, a signal will be generated andreceived by MCU 314. MCU 314 may then generate a message or a signal forprocessing unit 312. Then processing unit 312 may then sends a messageto a host or a server, such as a cellular router or a SIM directoryserver, to inform the host or the server about the status change of theSIM socket and/or a SIM card.

FIG. 6 illustrates various stages of a message being transmitted andreceived between an example wireless communication module such aswireless communication module 307 a and an example SIM card such as SIMcard plugged in SIM socket 315 a, via Interface IC 316 a, router MCU306, SIM Bank MCU 314 and Integrated Circuits 308 a according to one ofthe embodiments of the present invention. The message may include Answerto Reset (ATR), control messages, management messages, requests,notifications, indications and authentication messages. The message canbe part of SIM card information.

As the distance between wireless communication module 307 a and SIMsocket 315 a is longer than a few inches, the propagation delay islikely to be longer than the propagation delay originally anticipated inSIM card protocol. The longer propagation delay may cause latency forthe IP packets in Ethernet frames to reach their destination. Therefore,an ATR is required to be available promptly after a reset signal isgenerated from wireless communication module 307 a to the SIM cardplugged in SIM socket 315 a. The ATR is an output message generated bythe SIM card plugged in SIM socket 315 a conforming to ISO/IEC 7816standards. The ATR is followed by an electrical reset of the SIM card'schip in SIM socket 315 a, and in one example, is used as a firstindication that the SIM card plugged in SIM socket 315 a appearsoperative. The ATR also conveys information about the nature and stateof the SIM card plugged in SIM socket 315 a and communication parametersproposed by the SIM card plugged in SIM socket 315 a. For the presentembodiment, the ATR is achieved by transmitting and receiving a seriesof control messages between wireless communication module 307 a and theSIM card plugged in SIM socket 315 a as illustrated accordingly to stepsin FIG. 6 .

In step 601, an activation message is sent from router MCU 306 to SIMBank MCU 314. The activation message is used to cause interface IC 308 ato send an activation signal for a specific SIM card plugged in SIMsocket 315 a. In order to identify the specific SIM card plugged in SIMsocket 315 a from the SIM cards plugged in SIM sockets 315, theactivation message is accompanied by the SIM card identification. Theactivation message along with the SIM card identification areencapsulated in one or more IP packets, and then sent to SIM Bank MCU314. The one or more IP packets may also be embedded in one or moreEthernet frames by router MCU 306 and sent to SIM Bank MCU 314.

In one example, the activation signal pulls the reset pin of thespecific SIM card low for about 100 ms, and then drive the reset pinhigh again. Depending on the specification of the specific SIM card, theactivation signal may also pull the reset pin high.

There is no limitation on the format of the one or more messagescomprising the request or reply that are transmitted and receivedbetween router MCU 306 and SIM Bank MCU 314. There is also no limitationon the communication technologies for transmitting and receiving themessages. For example, Internet Protocol (IP) pages may be used forencapsulating message between router MCU 306 and SIM Bank MCU 314. Themessage may be comprised of specific fields for specific information.FIG. 2B illustrates one of the formats of the message encapsulated inpayload of one such IP packet. Field 2201 holds a signature. Thesignature is used for security and authentication purposes such as toauthenticate the source and confirm integrity of the message. Thesignature can also be used by recipient processors, such as router MCU306 and SIM Bank MCU 314 to recognize the IP packet for SIM cardmessage, especially in the case that the IP address of the recipient hasnot been discovered. As cellular router 330 has more than one wirelesscommunication module 307, identification is needed to distinguish therecipient and/or sender of the request/response. Field 2202 holds thespecific identification for a wireless communication module. Similarly,communication apparatus 320 may have one or more SIM cards plugged inSIM sockets 315. Each SIM card socket has a specific SIM card socketidentification. Field 2203 holds the specific identification foridentifying a specific SIM card socket. Field 2204 holds the request orresponse that is being conveyed between the wireless communicationmodule and the SIM card plugged in a SIM card socket.

In one example, router MCU 306 and SIM Bank MCU 314 communicates viaEthernet protocol. FIG. 7 illustrates the structure of a message when anEthernet is used to transmit and receive data between router MCU 306 andSIM Bank MCU 314. Ethernet frame 7001 is comprised with IP packet 7002.IP packet 7002 is capable of holding data including SIM card informationand MCU created information 7003.

Router MCU 306 and SIM Bank MCU 314 are capable of encapsulating datainto the payload of one or more IP packets 7002 and embed the one ormore IP packets 7002 into the payload of one or more Ethernet frames7001.

For illustration purpose, router MCU 306 encapsulates the activationmessage in field 2204, along with signature and SIM card socketidentification in fields 2201, and 2203 respectively, into the payloadof one or more IP packets and embeds the one or more IP packets into thepayload of one or more Ethernet frames. Router MCU 306 then transmitsthe one or more Ethernet frames to SIM Bank MCU 314.

When the activation message from router MCU 306 is received by SIM BankMCU 314, SIM Bank MCU 314 first de-embeds the one or more Ethernetframes and retrieves the signature in field 2201, SIM card socketidentification in field 2203 and activation message in field 2204 fromthe one or more IP packets. Then SIM Bank MCU 314 transmits theactivation message in field 2204 to an interface IC connected to a SIMcard plugged in one of the SIM card sockets according to SIM card socketidentification in field 2203. When an activation signal sent from SIMBank MCU 314 through an interface IC is received by the SIM card, theSIM card will generate an ATR. The ATR is then transmitted to SIM BankMCU 314 through its corresponding interface IC. SIM Bank MCU 314receives the ATR and encapsulates the ATR in field 2204, along withsignature and SIM card socket identification in fields 2201 and 2203respectively, into the payload of one or more IP packets. SIM Bank MCU314 then embeds the one or more IP packets into the payload of one ormore Ethernet frames and transmits the one or more Ethernet frames torouter MCU 306. For the present illustration, wireless communicationmodule identification in field 2202 is left empty and is determined byrouter MCU 306 according to the specific identification of wirelesscommunication module 307 a that will send the reset signal.

In one variant, router MCU 306 sends the activation message to SIM BankMCU 314 leaving the SIM card socket Identification in field 2203 empty.In such case, SIM Bank MCU 314 will retrieve the signature andactivation message from field 2201 and 2204 respectively. SIM Bank MCU314 will then send an activation message to a randomly chosen interfaceIC connected to one of the SIM cards plugged in SIM socket 315.

In step 602, the activation message stored in request/response in field2204 is received in the form of one or more Ethernet frames at SIM BankMCU 314. The one or more Ethernet frames are then de-embedded, and theone or more IP packets are decapsulated at SIM Bank MCU 314 in order toretrieve the activation message, the SIM card socket identification andsignature from fields 2204, 2203 and 2201 respectively. After theactivation message is retrieved, the activation message is sent to theinterface IC connected to the specific SIM card socket according to theSIM card socket identification in field 2203. For the present embodimentthe SIM card socket identification in field 2203 is for SIM socket 315 aand the activation message is sent to interface IC 308 a by SIM Bank MCU314 accordingly.

In step 603, the activation message is received by interface IC 308 a.When the SIM card plugged in SIM socket 315 a receives the activationsignal, it will send an ATR.

In one variance, when SIM Bank MCU 314 is capable of communicating withthe SIM card in SIM socket 315 a directly, interface IC 308 a may not beneeded and the activation message in step 602 is sent directly to theSIM card plugged into SIM socket 315 a from SIM Bank MCU 314.

In step 604, the activation signal is received by the SIM card pluggedin SIM socket 315 a. After receiving the activation signal, an ATR issent in response by the SIM card plugged in SIM socket 315 a tointerface IC 308 a.

In one variance, when the SIM card plugged in SIM socket 315 a iscapable of communicating with the SIM Bank MCU 314 directly, interfaceIC 308 a is not needed and the ATR in step 604 is sent directly to theSIM Bank MCU 314 from SIM card plugged into SIM socket 315 a.

In step 605, the ATR is sent from interface IC 308 a to SIM Bank MCU314.

In step 606, the ATR is received by SIM Bank MCU 1835. When the ATR isreceived by SIM Bank MCU 314, SIM Bank MCU 314 stores the identificationof SIM socket 315 a. SIM Bank MCU 314 further creates a signature. TheATR then accompanied by a signature and SIM card socket identificationis encapsulated in the payload of one or more IP packets according tothe format illustrated in FIG. 2B. The one or more IP packets are thenembedded in one or more Ethernet frames by SIM Bank MCU 314 and sent torouter MCU 306. The ATR is received by router MCU 306 in the form of oneor more Ethernet frames. The one or more Ethernet frames are thende-embedded, and the one or more IP packets are decapsulated at routerMCU 306 in order to retrieve the ATR. After the ATR is retrieved, theATR is sent to wireless communication module 307 a via interfacecircuits 316 a once a reset signal is received by router MCU 306.

When the distance between the SIM card plugged in SIM socket 315 a andwireless communication module 307 a is more than one meter, the ATR sentin response from the SIM card plugged in SIM socket 315 a may takelonger time than is desirable to propagate to wireless communicationmodule 307 a. In order to overcome this drawback, time limits areallocated to receive the response from the SIM card plugged in SIMsocket 315 a. The ATR sent from the SIM card plugged in SIM socket 315 ain response to the activation signal is received by router MCU 306.After receiving the ATR, the ATR is retrieved and stored by router MCU306. Once a reset signal is received by router MCU 306 from wirelesscommunication module 307 a, the ATR is sent promptly to wirelesscommunication module 307 a within a first or a second time limit such as0.1 or 1 second respectively. This configuration is provided in order toimprove the response time. In one example, when wireless communicationmodule 307 a needs the ATR information in order to begin a communicationsession with the SIM card plugged in SIM socket 315 a, the ATR isretrieved by sending a reset signal to router MCU 306, avoiding thenecessity of communicating at that point with the SIM card plugged inSIM socket 315 a.

In step 607, a reset signal initiated by wireless communication module307 a is received by interface circuits 316 a to send to router MCU 306.Wireless communication module 307 a may not be capable of communicatingwith router MCU 306 since the output voltage from wireless communicationmodule 307 a may not match the input voltage for router MCU 306.Interface circuits 316 a comprising of a voltage shifter and otherrelated circuitries help for shifting the voltage to send the resetsignal to router MCU 306.

In one variant, when wireless communication module 307 a is capable ofcommunicating with router MCU 306 directly without converting voltage,the voltage shifter in interface circuits 316 a is then not needed, andthe reset signal in step 607 may be sent directly to router MCU 306 fromwireless communication module 307 a.

In step 608, the reset signal is received by router MCU 306 frominterface circuits 316 a. When router MCU 306 receives the reset signal,router MCU 306 stores the identification of wireless communicationmodule 307 a in order to send the ATR. The ATR is then ready to be sentto wireless communication module 307 a via interface circuits 316 a.

In step 609, the ATR is received by interface circuits 316 a from routerMCU 306. The voltage shifter in interface circuits 316 a helps shiftingthe voltage to send the ATR to wireless communication module 307 a.

In one variance, when router MCU 306 is capable of communicating withwireless communication module 307 a directly, interface circuits 316 amay not be needed and the ATR in step 609 is sent directly to wirelesscommunication module 307 a from router MCU 306.

In step 610, the ATR is received at wireless communication module 307 a.After receiving the ATR, a basic communication channel is establishedbetween the SIM card plugged in SIM socket 315 a and wirelesscommunication module 307 a. Wireless communication module 307 a thenstarts communicating with the SIM card plugged in SIM socket 315 a usingthe information contained in the ATR.

There is no limitation that the sequences illustrated in FIG. 6 onlyapplies to SIM socket 315 a. The sequences also apply to other SIMsockets in 315, including SIM socket 315 n.

There is no limitation in time when step 607 is performed after step606. For example, step 607 may be performed within a second after step606 is performed. In another example, step 607 may be performed a fewdays after step 606 is performed.

In one variant, the ATR is cached or stored, and a communication sessionis established between one wireless communication module and one SIMcard plugged in one SIM card socket. The sequences illustrated in FIG. 6applies for the variant embodiment as well except that there will be noneed to assign the IDs of SIM card plugged in a SIM card socket andwireless communication module in the one or more IP packets for step 601and 606 respectively.

In one variant, step 602 is initiated by SIM Bank MCU 314 without step601 being performed. Therefore step 602 is performed without receiving amessage or request from router MCU 306. When ATR is received at step605, the ATR is then stored by SIM Bank MCU 314 in a non-transitorystorage medium and not sent to router MCU 306 until router MCU 306requests it. As it is possible that a cellular router may not need SIMcard information from a particular SIM card, there is no need for routerMCU 306 to have the ATR of that particular SIM card. When router MCU 306sends the activation message by performing step 601, as steps 602-605have already been performed, step 606 is capable of being performed muchsooner comparing to when steps 602-605 not been performed earlier. Inone further variant, step 606 is performed without step 601 beingperformed. The ATR is sent to router MCU 306 for storage at anon-transitory computer readable storage medium at the cellular router.This allows ATR to be sent to wireless communication module 307 aquickly in step 609 as the ATR is already stored in the non-transitorycomputer readable storage medium at the cellular router.

There is no limitation that only ATR is stored at the non-transitorycomputer readable storage medium at the communication apparatus orcellular router. Other SIM card information can also be stored. Forexample, international mobile subscriber identity (IMSI) and contactinformation can also be stored.

In one variant, there is no SIM card identification information in theactivation message at step 601 as router MCU 306. SIM Bank MCU 314 maythen select one of its SIM cards to send the activation message at step602.

There is also no limitation on the number of ATRs can be cached orstored at a communication apparatus or a cellular router. For example,there are ten SIM cards inserted in SIM card sockets at communicationapparatus 320. Communication apparatus 320 sends activation messages tothe ten SIM cards and then stored the ATRs received. In another example,router MCU 306 sends activation messages to the ten SIM cards and thenstored the ATRs received.

In one variant, when an ATR has been longer than a first period of time,the ATR is discarded. The first period of time should not be less thanone minute. The preferred time period is from five minutes to one day.The longer the first period of time, the higher probability that the SIMcard corresponding to the ATR may not be available for use anymore.

In one variant, when a SIM card is being used or removed fromcommunication apparatus 320, communication apparatus 320 will send amessage to cellular router to inform the cellular router that the SIMcard cannot be selected. Then the cellular router will not include theidentification of the SIM card in the activation message. The cellularrouter may include the identification of another SIM card. In onevariant, the cellular router may not include any SIM card identificationin the activation message if there is no preference of which SIM card touse or no knowledge of SIM identification. In one variant, cellularrouter may include SIM card selection criteria in the activation messageto let communication apparatus 320 to select a SIM card for the wirelesscommunication module.

One of the reasons to discard the ATR is because the SIM cardcorresponding to the ATR may be being used by another cellular router orbeing removed from the communication apparatus. Therefore, the ATRcannot be used anymore.

FIG. 4A depicts an example sequence diagram illustrating steps andevents for a particular scenario associated with the present invention.The present embodiment tries to extend the waiting time of wirelesscommunication module 307 a. After wireless communication module 307 asends a request for a reply from a corresponding SIM card, router MCU306 sends a halt command to wireless communication module 307 a toinform wireless communication module 307 a that the corresponding SIMcard is still processing the request. The halt command is a message withprocedure byte containing null value, i.e. value 60, according toISO/JEC 7816 family of standards with T=0 protocol (version A). In thisparticular scenario, the request comprises of a five bytes header and abody. Therefore, the complete size of the request is at least five byteslong. For readability, the term “FBR” is used herein to refer to requestthat is at least five bytes long.

Request 401 is an FBR and is first transmitted from wirelesscommunication module 307 a. Request 401 is then passed through interfacecircuits 308 a and reaches router MCU 306.

Router MCU 306 then modifies request 401 to request 402 according to theformat illustrated in FIG. 2B and then transmits request 402 to SIM BankMCU 314. The transmission of request 402 is managed using TransmissionControl Protocol (TCP) and therefore is considered to be reliable. Inone variant, request 402 is sent using User Datagram Protocol (UDP) whenspeed is more important than reliability, since UDP is a connectionlessprotocol the speed becomes a trade-off over reliability unlike TCP.Furthermore, UDP transmission of request 402 can be used in a networkenvironment where router MCU 306 wants to broadcast or multicast request402 in order to connect to more than one SIM Bank MCU 314.

After 0.8 seconds for example, router MCU 306 reaches its time threshold403 a. It should be appreciated that there is no limitation to at howmany seconds time thresholds 403 could be set as long as it is shorterthan the timeout period of wireless communication module 307 a. Timethresholds 403 may be predetermined based on instructions from a user oradministrator of cellular router 300. Time thresholds 403 may also bepreconfigured by the manufacturer of cellular router 300. At oneexample, the time threshold for router MCU 306 could be set at 0.8seconds when the timeout period of a wireless communication module isset to 1.2 seconds. At 0.8 seconds, when there is no reply received fromSIM Bank MCU 314, router MCU 306 transmits halt command 404 a towireless communication module 307 a. Halt command 404 a is used toinstruct wireless communication module 307 a to wait further. Whenwireless communication module 307 a receives halt command 404 a, it willcontinue to wait for a reply for a period of time.

In this illustration, if a reply is not yet received within 0.8 seconds,router MCU 306 again reaches its time threshold 403 b i.e. 1.6 secondswhich is 0.8 seconds after halt command 404 a being sent. Router MCU 306then repeats the procedure disclosed earlier and transmits halt command404 b to wireless communication module 307 a. When wirelesscommunication module 307 a receives halt command 404 b, it will wait fora reply for another 1.2 seconds. Similarly, router MCU 306 againtransmits halt command 404 c to wireless communication module 307 a attime threshold 403 c i.e. 2.4 seconds, which is 0.8 seconds after haltcommand 404 b is being sent.

Reply 405 is received in the format illustrated in FIG. 2B. After reply405 is received, router MCU 306 then extracts the SIM card informationfrom reply 405 and sends the SIM card information in reply 406 towireless communication module 307 a. As reply 406 has already been sentto wireless communication module 307 a, router MCU 306 then stopstransmitting halt commands to wireless communication module 307 a sincethere is no need to extend the timeout period for reply 405 anymore.Wireless communication module 307 a then performs according to the replyreceived. In another scenario, reply 405 is still not received withinthe third extended timeout period and router MCU 306 again approaches atime threshold. In such case for every time router MCU 306 approachesits time thresholds without receiving a reply from SIM Bank MCU 314,router MCU 306 transmits halt commands to wireless communication module307 a to reset the timer and tries to extend the timeout period ofwireless communication module 307 a. As a result, the 1.2 secondstimeout period can be extended to one minute for example. Furthermore,there is no limitation that the timeout period for wirelesscommunication can only be extended to one minute. The timeout period canbe extended beyond one minute when desired, but limited by therequirements of wireless communication module 307 a.

The extension of the timeout period can be predetermined based oninstructions from a user or administrator of cellular router 300. Inanother example, the number of halt commands sent by router MCU 306 hasreached a halt command sent threshold (HST) and router MCU 306 stilldoes not receive a reply from SIM Bank MCU 314, router MCU 306discontinues transmitting the halt commands to wireless communicationmodule 307 a. One of the reasons for discontinuing sending halt commandsafter HST is reached is to reduce the loading on router MCU 306 becausewireless communication module 307 a accepts only a number of haltcommands in a certain period of time, for example ten halt commands ineight seconds. Depending on the model of wireless communication module307 a, it may ignore incoming halt commands after HST is reached. Incertain model of wireless communication module 307 a, after HST isreached, wireless communication module 307 a will reset thecorresponding SIM card. The value of HST depends on the specification ofa wireless communication module and may vary for different wirelesscommunication modules. The time interval among and the number of haltcommands to be sent can be predetermined based on instructions from auser or administrator of cellular router 300. In one embodiment, thetime interval between two consecutive halt messages is no longer thantwo seconds.

FIG. 4B depicts an example sequence diagram illustrating steps andevents for a scenario associated with the present invention. Comparingto the example sequence diagram illustrated in FIG. 4A, a plurality ofmodified requests 411 a-g are sent, instead of only request 402 is sent,before a modified reply is received by router MCU 306.

In this scenario, for illustration purpose, router MCU 306 sendsmodified request 411 a after received request 410. If no modified replyfrom SIM Bank MCU 314 is received before expiration of a time threshold,router MCU 306 sends modified request 411 b. The time threshold is atime value ranging from one hundred milliseconds to two seconds. Forreadability, we refer this time threshold as modified request resenttime threshold (MRRTH) hereinafter. The lower MRRTH is, the soonerrouter MCU 306 sends a modified request. As time moves on, when at thenext MRRTH and still no modified reply from SIM Bank MCU 314 is receivedbefore expiration, router MCU 306 sends modified request 411 c. RouterMCU 306 keeps sending modified requests 411 to SIM Bank MCU 314 untilmodified reply 414 is received. For illustration purpose, modified reply414 is received after modified request 411 g is sent. When modifiedreply 414 is received, router MCU 306 sends reply 415 based on modifiedreply 414, and stops sending modified requests 411.

While modified requests 411 are sent, router MCU 306 sends halt commands413 at time thresholds 412 such as halt commands 413 a-413 c at timethresholds 412 a-412 c respectively to wireless communication module 307a until either modified reply 414 is received or number of halt commandssent has reached HST.

In one example, MRRTH is forty milliseconds, and the time threshold iseighty milliseconds. Therefore, router MCU 306 sends a modified requestevery forty milliseconds and a halt command every eight millisecondsuntil modified reply 414 is received or number of halt commands hasreached HST. There is no limitation that MRRTH must be fortymilliseconds. For example, MRRTH can be set up a user, an administratoror manufacturer in the range of one millisecond to one thousandmilliseconds.

It is preferred that modified requests 411 are transmitted from routerMCU 306 using UDP transmission. Using UDP for transmitting modifiedrequests 411 incurs less delay compared to TCP. If modified requests 411are transmitted using TCP transmission to SIM Bank MCU 314.

When SIM Bank MCU 314 receives the first of modified requests 411, SIMBank MCU 314 decapsulates that modified requests 411 to retrieve therequest and then transmits the request to a corresponding SIM card. Thecorresponding SIM card then receives the request and generates a replyto SIM Bank MCU 314. SIM Bank MCU 314 then encapsulates the reply, andtransmits modified reply 414 according to the format illustrated in FIG.2B to router MCU 306.

When SIM Bank MCU 314 receives more than one of modified requests 411,SIM Bank MCU 314 ignores modified requests received after the firstmodified request received. For illustration purpose, modified request411 b is the first modified request received by SIM Bank MCU 314. SIMBank MCU 314 will then ignore modified request 411 a, 411 c-g. In oneexample, modified requests 411 a-g are embedded with a number toindicate the sequence, therefore SIM Bank MCU 314 is able to use thenumber to determine modified request 411 a and 411 c-g are encapsulatingrequest 410.

SIM Bank MCU 314 then transmits the decapsulated request from modifiedrequest 411 b to the corresponding SIM card. The SIM card then generatesa reply for the decapsulated request from modified request 411 b andtransmits the reply to SIM Bank MCU 314. Then SIM Bank MCU 314encapsulates the reply, and transmits modified reply 414 following theformat illustrated in FIG. 2B to router MCU 306.

In one example, modified reply 414 is transmitted using TCP. In anotherexample, modified reply 414 is transmitted using UDP. Router MCU 306then decapsulates modified reply 414 and transmits reply 415 to wirelesscommunication module 307 a. In one example, when modified reply 414 istransmitted using UDP, a plurality of duplicate modified replies 414 aresent in order to increase the probability that router MCU 306 receivesat least one modified reply 414. Since SIM Bank MCU 314 may connect to aplurality of cellular routers 300 concurrently, SIM Bank MCU 314 may beprocessing a plurality of modified request from and sending out aplurality of modified replies to a plurality of cellular router 300.Therefore, sending out a plurality of modified replies, whichencapsulate the same reply, may cause overloading for SIM Bank MCU 314and higher processing delay.

As there are many different types and models of wireless communicationmodules available in the market, these wireless communication modulesmay behave differently and may have different techniques to communicatewith SIM cards. For some of the wireless communication modules, haltcommand is only applicable to FBR. For requests that have header bytesfewer than five bytes, halt command may not be applicable. In theembodiment of example sequence diagram of FIG. 5A, when size of arequest from wireless communication module 307 a is less than five byteslong, the timeout period is reset by router MCU 306 using a breaksignal. The break signal is a serial break of the serial communicationfollowing UART protocol between router MCU 306 and wirelesscommunication module 307. As the break signal is sent through the serialcommunication, break signal can be used independent of the halt commanddescribed in FIG. 4A and FIG. 4B. For example, the break signal can beused together with halt command in sequence to further increase thewaiting time of wireless communication module 307 a. In another example,the break signal and the halt command are used in mixed sequence.

When wireless communication module 307 receives a break signal, wirelesscommunication module 307 a will consider that the request transmittedearlier to the corresponding SIM card had an error. As a result,wireless communication module 307 a generates a new request, which holdsthe same content as the previous request, and then transmits the newrequest.

After wireless communication module 307 a transmits request 501 a,router MCU 306 receives request 501 a and modifies request 501 aaccording to the format illustrated in FIG. 2B to modified request 502a. Router MCU 306 then transmits modified request 502 a to SIM Bank MCU314.

For illustration purpose, the time threshold is eighty milliseconds andwireless communication module 307 a will wait for a one hundred andtwenty milliseconds before resetting a corresponding SIM card. Whenrouter MCU 306 has reached eighty millisecond time threshold 506 a andhas not received a reply from SIM Bank MCU 314, router MCU 306 transmitsbreak signal 503 a to wireless communication module 307 a. When wirelesscommunication module 307 a receives break signal 503 a, wirelesscommunication module 307 a sends request 501 b as wireless communicationmodule 307 a may consider that request 501 a had an error and was notreceived correctly by the corresponding SIM card. After wirelesscommunication module 307 a has transmitted request 501 b, wirelesscommunication module 307 a will wait for a reply to arrive within onehundred and twenty milliseconds. Similarly, when router MCU 306 hasreached a further eighty milliseconds time threshold 506 b and has notreceived a reply from SIM Bank MCU 314, router MCU 306 repeats theprocedure disclosed earlier and sends break signal 503 b to wirelesscommunication module 307 a. Wireless communication module then sendsrequest 501 c.

Router MCU 306 receiving a reply from SIM Bank MCU 314, router MCU 306sends break signals 513 at every time thresholds 516 such as breaksignals 513 a-513 b at time thresholds 516 a-516 b. As time moves onwithout of router MCU 306 to wireless communication module 307 a until areply is received or number of breaks sent has reached a break sentthreshold (BST). The preferred time period for the BST that can betransmitted from router MCU 306 to wireless communication module 307 acan be predetermined based on instructions from a user or administratorof cellular router 300. Throughout the preferred time period, wheneverrouter MCU 306 approaches a time threshold, router MCU 306 sends a breaksignal to wireless communication module 307 a.

Requests 501 b-c are received and then discarded by router MCU 306. Oneof the reasons for discarding requests 501 b-c is, since requests 501b-c holds the same content as request 501 a and request 501 a is alreadytransmitted as modified request 502 a from router MCU 306 using areliable connection such as TCP, transmitting further requests 501 b-cmay incur high processing delay for router MCU 306 and SIM Bank MCU 314.

For illustration purpose, modified reply 504 is received by router MCU306 after receiving request 501 c. Modified reply 504 is received in theformat illustrated in FIG. 2B and is the reply to request 501 a. Afterreceiving modified reply 504, router MCU 306 stops sending further breaksignals and sends reply 505 based on modified reply 504 to wirelesscommunication module 307 a.

In FIG. 5B, a plurality of modified requests 512 a-g are sent comparingto FIG. 5A where only modified request 502 a is sent, before a modifiedreply is received by router MCU 306. In this scenario, for illustrationpurpose, router MCU 306 sends modified request 512 a after receivedrequest 511 a. If no modified reply from SIM Bank MCU 314 is receivedbefore expiration of a first MRRTH, router MCU 306 sends modifiedrequest 512 b.

As time moves on, when at the next MRRTH and still no modified replyfrom SIM Bank MCU 314 is received before expiration, router MCU 306 willsend additional modified requests, such as modified requests 512 c-g,until reply 515 is received. Contents of modified request 512 b-g arethe same as the content of modified request 512 a as modified requests512 b-g are encapsulating requests 511 a. In one example, requests 511b-c are received and then discarded by router MCU 306 as content ofrequests 511 b-c should be the same as content of request 511 a.

For illustration purpose, modified reply 514 is received after modifiedrequest 512 g is sent. Router MCU 306 will then send reply 515, based onmodified reply 514, to wireless communication module 307 a, and stopssending further modified requests 512.

It is preferred that modified requests 512 are transmitted from routerMCU 306 using UDP transmission for reasons explained earlier inconjunction FIG. 4B. When SIM Bank MCU 314 receives more than one ofmodified requests 512, SIM Bank MCU 314 ignores modified requestsreceived after the first modified request received. In reference to theprocess explained earlier in conjunction FIG. 4B where each of modifiedrequests 512 are embedded with a number, SIM Bank MCU 314 uses thenumber to determine the first received modified request 512 a from therest. Modified reply 514 is the reply to the request from modifiedrequests 512 received earliest by SIM Bank MCU 314.

In one variant, request 511 b-c are not discarded. Then a modifiedrequest encapsulates the most recently received request. For example,modified requests 512 a-c encapsulate request 511 a; modified requests502 d-f encapsulates request 511 b; modified request 502 g encapsulatesrequest 511 c. By encapsulating the most recent requests, modifiedrequest will be more updated.

While modified requests 512 are sent, router MCU 306 sends break signals513 periodically at time thresholds 516 to wireless communication module307 a until either modified reply 514 is received or number of breakssent has reached a BST.

In one alternative, cellular router 300 and communication apparatus 320are capable of registering and communicating with each other using ShortMessage Services (SMS). In another alternative, cellular router 300 andcommunication apparatus 320 are capable of registering with each otherusing audio signaling. A voice call can be established between acellular router and a communication apparatus. Then data can betransmitted and received between the cellular router and communicationapparatus in the form of specific tones. The benefit of using SMS and/orvoice calls for registration and communication between the cellularrouter and communication apparatus is that most valid SIM cards arecapable of being used by the cellular router to connect to a wirelessnetwork. The connection may be established using roaming services whenthe cellular router and communication apparatus are not in the sameregion or country. After the cellular router establishes a connection toa wireless network, cellular router can then connect with thecommunication apparatus using SMS and/or voice calls.

FIG. 8 illustrates a network diagram according to embodiments of thepresent invention. Cellular router 800 may be similar to cellular router300 or cellular router 330. In one variant, cellular router 800 may nothave remote data port. Cellular router 800 has a plurality of wirelesscommunications modules to allow cellular router 800 to communicate toSIM directory server 804 and SIM banks 805 through interconnectednetwork 803. Interconnected network may be the Internet or a combinationof public and private networks. Each wireless communication module iscoupled to one or more antennae and is capable to communicate with awireless communication network, such as a cellular network. There is nolimitation on the number of wireless communication modules. SIM bank 805may be communication apparatus 320, such that SIM bank 805 has thehardware components illustrated in FIG. 3B

FIG. 9 illustrates sequences of a plurality of embodiments according tothe present invention. FIG. 9 should be viewed in conjunction with FIG.8 . For readability, SIM banks 805 a and 805 b are SIM bank A and SIMbank B respectively. At steps 910 and 912, SIM directory server 804communicates with SIM bank A and SIM bank B respectively. There is nolimitation on the number of SIM banks that SIM directory server 804 maycommunicate. For example, SIM directory server 804 may communicate withone SIM bank or twenty SIM banks. There is also no limitation that allthe SIM banks must be communicated with simultaneously. For example, SIMdirectory server 804 may communicate with SIM bank B first and then withSIM bank B first one minute later. The SIM card availability informationis then sent to SIM directory server 804 at steps 911 and 913 from SIMbank A and SIM bank B respectively. A more detailed description of steps910-913 will be provided hereafter with respect to FIG. 3 below.

It is possible that after SIM directory server 804 communicated a SIMbank, a SIM card in the SIM bank may be used by a cellular router orreserved by another SIM directory server. As a result, SIM directoryserver may communicate with SIM bank A and SIM bank B periodically inorder to retrieve updated SIM card availability information. In onevariant, where there is a change in SIM card availability information,the corresponding SIM bank may communicate with SIM directory server 804proactively.

It is preferred that SIM directory server 804 has updated information ofSIM card information in SIM bank A and SIM bank B. This allows SIMdirectory server 804 to be able to identify a SIM card that is suitableor optimally suitable to a cellular router, such as cellular router 800,when a request of using a SIM card is received from cellular router 800at step 920. At step 921, SIM directory server 804 selects a SIM cardfrom one of SIM bank A and SIM bank B. SIM directory server 804 replieswith SIM card connectivity information that allows cellular router 800to communicate with a SIM card in one of SIM bank A and SIM bank B. Amore detailed description of steps 920-921 will be provided hereafterwith respect to FIG. 11 below.

For illustration purpose only, SIM bank A holds the selected SIM card.Cellular router 800 sends one or more requests to SIM bank A forcommunicating with the selected SIM in step 922. In a more detaileddescription, the one or more requests are encapsulated in a datagram,which is then encapsulated in a network frame or packet, such as anInternet Protocol (IP) packet. When SIM bank A receives the requeststhrough one of its network interfaces, such as network interface 317, aprocessing unit of SIM bank A, such as processing unit 312, will processthe requests and extract the SIM card request originated from a cellularmodem of cellular router 800. The processing unit will then relay theextracted SIM card request to the selected SIM card. When the selectedSIM card receives the extracted SIM card request, the selected SIM cardmay respond with a valid response. The selected SIM card may alsorespond with an error message or reject the request. The processing unitwill then relay the response, error message, or rejection to the networkinterface. The network interface then sends the response, error message,or rejection to cellular router 800 through a network in step 923. It ispreferred to encapsulate the response, error message, or rejection in adatagram, which is then encapsulated in a network frame or packet, suchas an IP packet.

The processing unit of cellular router 800 may decapsulate the response,error message or rejection from the network frame or packet and thenforward the response, error message or rejection to the cellular modem.The cellular modem in cellular router 800 may then use the responseaccordingly. For example, the cellular modem may perform authenticationwith a cellular network based on the response. In another example, thecellular modem may send and receive wireless data based on the response.As communications between the cellular modem and the selected SIM cardare encapsulated in network frames and packets, cellular modem and theselected SIM card may communicate even over a network.

In another embodiment, cellular router 800 does not directly communicatewith a SIM bank. SIM directory server 804 relays messages, requests,responses, error messages and rejections between a SIM bank and cellularrouter 800. For example, in step 931, cellular router 800 sends arequest to SIM directory server 804, then SIM directory server 804forwards the request to the SIM bank holding the selected SIM card. Forillustration purpose only, SIM bank B holds the selected SIM card.Therefore, SIM directory server 804 in step 932 forwards the request toSIM bank B. When the selected SIM card replies with a response, an errormessage or a rejection, the reply is forwarded by SIM bank B to SIMdirectory server 804 in step 933. Then SIM directory server 804 forwardsor relays the reply to cellular router 800 in step 934. Comparing to theembodiment illustrated in steps 920-923, the benefits of the presentembodiments of using SIM directory server 804 for relaying includeshigher security and simpler management. However, the disadvantagesinclude larger latency.

In another embodiment, cellular router 800 does not directly communicatewith a SIM bank. Further SIM directory server 804 may not know which SIMcard is available when a request is received from cellular router 800 instep 941. The request may comprise a SIM card request. In steps 942 and943, SIM directory server 804 requests for SIM card availability andforwards a plurality of requests, which are based on the requestreceived in step 941, to SIM bank A and SIM bank B respectively at aboutthe same time. One of the benefits for sending the plurality of requeststo both SIM bank A and SIM bank B at about the same time is to reducewaiting time in case one of the requests was not received successfullyby the corresponding SIM bank or one the SIM banks is not operatingorderly. One of the disadvantages for sending the plurality of requeststo both SIM bank A and SIM bank B at about the same time is consumingmore resources. In step 944, SIM bank A sends a response in response torequest received in step 942. Similarly, in step 945, SIM bank A sends aresponse in response to request received in step 943. When bothresponses in steps 944 and 945 provide SIM card availabilityinformation, SIM directory server 804 may select one of SIM cardavailability information to forward to cellular router 800. Therefore,only one SIM card is being selected and to be used by cellular router800. For example, SIM directory server 804 selects SIM card availabilityinformation embedded in the response received in step 944 from SIM bankA, SIM directory server 804 forwards the SIM card availabilityinformation in step 946 to cellular router 800.

Regarding the SIM card availability information received in step 945from SIM bank B, processing unit of SIM directory server 804 may not useit further or use it later for cellular router 800 or another cellularrouter.

FIG. 10 illustrates a more detailed process of steps 910-911 and steps912-913. In process 1001, SIM directory server 804 selects a SIM bank tocommunicate with. There are myriads of ways to select the SIM bank. Forexample, SIM directory server 804 may select a SIM bank based on theperiod of time of last communication. In another example, SIM directoryserver 804 may select the SIM bank periodically. In another example, SIMdirectory server 804 may select the SIM bank after receiving a requestto connect or connection termination from a cellular router. In process1002, SIM directory server 804 sends messages to the selected SIM bankfor collecting status and/or for instructing the selected SIM bank. Forillustration purpose, the selected SIM bank is SIM bank B. In oneexample, SIM directory server 804 may collect SIM card availabilityinformation. SIM card availability information may include: number ofSIM cards available for use, number of SIM cards being used, status ofone or more SIM cards, location of one or more SIM cards, address of oneor more SIM cards, position of one or more SIM cards and billinginformation of one or more SIM cards. In one example, SIM directoryserver 804 may collect information regarding a connection establishedusing one of the SIM cards in SIM bank B with a cellular router. In oneexample, SIM directory server 804 may instruct SIM bank B to performmanagement on one or more SIM cards, including checking health of a SIMcard; to disconnect a connection established between a cellular routerwith a SIM card; to reset a SIM card electronically; to reset a SIM cardmechanically. Processes 1001 and 1002 may be performed together usingone message or in sequence. At step 1003, SIM directory server 804 mayreceive a response from SIM bank B. The response may contain status ofSIM bank B, status of one or more SIM cards in SIM bank B, executionresults according to the instruction, error message and one or moremessages received from one or more SIM cards in SIM bank B. Based on theresponse, processing unit(s) of SIM directory server 804 may update adatabase, further instruction SIM bank B, send one or more messages toone or more cellular routers. There is no limitation that SIM bank Bmust send a response to SIM directory server 804. For example, SIM bankB may be out of order and is not able to send a response. In anotherexample, processing unit of SIM bank B may determine, according toinstructions stored in non-transitory computer readable storage media,not to send a response.

The database being updated in step 1003 may perform as a directory forlooking up a suitable SIM card. When cellular router 800 sends therequest at step 200, cellular router 800 may not know which SIM card itshould use. Through the database, processing unit of SIM directoryserver 804 is able to identify an available SIM card for cellular router800. More details of the database will be described in process 1112.

FIG. 11 illustrates a more detailed process of steps 920-921. At process1111, a request of using a SIM card from cellular router 800 is receivedby SIM directory server 804. When cellular router 800 first needs a SIMcard for establishing a wireless communication with a wireless networkservice provider, cellular router 800 sends a request to SIM directoryserver 804. At this point, the processing unit of cellular router 800has no information of which particular SIM card to use. The processingunit of cellular router 800 may embed preferences of a SIM card in therequest. The processing unit of cellular router 800 may further embedother information, including location of cellular router 800 and otherSIM cards that are being used by cellular router 800, in the request.The request may be encrypted.

In one variant, processing unit of cellular router 800 may send aplurality of the same request to SIM directory server 804 in order toincrease the reliability that the request is received by SIM directoryserver 804. There is no limitation on the communications technology ormedia to be sued by sending the request. For example, cellular router800 may send the plurality of the same request through a DSLcommunication service, a 4G/LTE communication service and an IEEE 802.11wireless network. Processing unit of SIM directory server 804 mayprocess the first arrived request of the plurality of the same requestand ignore subsequent arrived requests of the plurality of the samerequest.

At process 1112, processing unit of SIM directory server 804 selects aSIM card for cellular router 800. The selection may be based on locationof cellular router 800, wireless communication service providersaccessible by cellular router 800, tariffs, time, date, estimatedreliability between cellular router 800 and a SIM bank, location of aSIM bank, and/or usage restriction. There is no limit where the selectedSIM card has to located at unless there is a such selection criteria.For example, SIM directory server 804 may select a SIM card from one ofSIM bank A and SIM bank B. When there are additional SIM banksavailable, SIM directory server 804 may use a SIM card from anadditional SIM bank.

In more details, the database in SIM directory server 804 is used toselect the SIM card. As the database has availability information of SIMcards located in SIM banks 805, processing unit of SIM directory server804 may use the database to select a SIM card quickly when receiving arequest from cellular router 800. In the database, information storedrelated to a SIM card may include phone number, IMSI, Mobile CountryCode (MCC), a Mobile Network Code (MNC), location of the SIM card,identity of the SIM bank holding the SIM card, IP address of the SIMbank, IP address of the SIM socket with the SIM card, tariff, data planlimited, data usage, remaining allowed data usage, wireless technologyallowed, payment contact, subscription codes, geographical area allowedto be used without incurring roaming charge, and any other informationthat may help selecting the SIM card.

For example, based on the location information of cellular router 800 inthe request, SIM directory server 804 may select a SIM card that wouldnot incur roaming charge in the location of cellular router 800.

It is preferred that one of substantial criteria is tariffs. In oneexample, a SIM card that has lowest tariff for cellular router 800 touse is selected. For example, cellular router 800 is operating in LosAngeles. SIM directory server 804 will select a SIM card that has lowesttariff in Los Angeles for cellular router 800. When cellular routermoves from Los Angeles to Las Vegas, for example, another SIM card maybe selected in order to achieve lowest tariff.

In another example, based on one or more cellular networks found bycellular router 800 and sent to SIM directory server 804, SIM directoryserver 804 may select a SIM card that has a MCC and a MNC matching oneof the one or more cellular networks. In one variant, SIM directoryserver 804 may use different criteria to selects a SIM. For example, inaddition to be based on the location of cellular router 800, SIMdirectory server 804 may select a SIM card based on not only thelocation of cellular router 800 but also the remaining allowed datausage of a SIM card.

Information of the selected SIM card may be retrieved from the databaseof the SIM bank which holds the selected SIM card. The information mayalso be already provided to SIM directory server 804 before the SIM cardis selected. For example, the information may be stored in a databaselocally accessible to the SIM directory server 804. Once the SIM card isselected, SIM directory server 804 may retrieve the information from thedatabase. The information may be used to facilitate the selection.

In one variant, after a SIM card is selected, SIM directory server 804may verify whether the selected SIM card is indeed available for use.SIM directory server 804 may send a request to the SIM bank holding theselected SIM card for verification. In one example, the SIM bank willsend a request to the SIM bank holding the selected SIM card is inoperation. The SIM bank will then reply to the request of SIM directoryserver 804.

At process 1113, SIM directory server 804 reply to the request receivedat process 1111 with connectivity information. SIM card connectivityinformation may include identity of a SIM bank, identity of the selectedSIM card, IMEI of the selected SIM card, a publicly reachable address ofthe SIM bank which holds the selected SIM card, a publicly reachableaddress of the selected SIM card, usage restriction, and/orauthentication information. For example, IP address of the SIM bankingholding the selected SIM card may be included in the SIM cardconnectivity information. In another example, a security token with atime limit is sent to both cellular router 800 and the SIM bank.Cellular router 800 will then have to authenticate with the SIM bankwithin the time limit using the security token.

There is no limitation on the medium and technology communications usedfor cellular router 800 to send the request of using a SIM card. Forexample, the request in process 1111 may be sent by cellular router 800through an Internet connection or a private connection. The request mayalso be sent through a wireless connection or a wired connection. In oneexample, the request is sent through network interface 310 check ofcellular router 800 using an ADSL connection. In another example, therequest is sent through one of wireless communication modules 307 andthe connectivity information embedded in reply in process 1113 is foranother wireless communication module of wireless communication modules307. For example, the wireless communication module is wirelesscommunication module 307 a and the another wireless communication moduleis wireless communication module 307 b. Wireless communication module307 a is used to send the request may establish a connection based on alocally available SIM card in cellular router 800. The use of locallyavailable SIM card may incur a roaming charge or higher tariff.Therefore, before the wireless communication module 307 b can be used,the use of wireless communication module 307 a is restricted. Forexample, wireless communication module 307 a may only be used tocommunicate with SIM directory server 804 and SIM banks 805. In onevariant, there is no restriction on the use of wireless communicationmodule 307 a.

In one embodiment, after one wireless communication module of wirelesscommunication modules 307 has successfully established a connection tothe Internet, cellular router 800 will repeat (i) steps 920 to 923, (ii)steps 931-934 or (iii) steps 941-946 for another wireless communicationmodule. For example, after wireless communication module 307 a has usedSIM card connectivity information from SIM bank 805 to establish anInternet connection, processing unit of cellular router 800 may usewireless communication module 307 a to perform steps 931-934 to retrieveSIM card connectivity information in order to enable wirelesscommunication module 307 b to connect to the Internet. The SIM cardconnectivity information for wireless communication module 307 b isoriginated from a SIM card located in one of the SIM banks.

In one variant, a SIM bank may have one or more wireless communicationmodules. Processing unit of the SIM bank may use the one or morewireless communication modules to test a SIM card if the SIM card isoperational. This avoids the situation that an out-of-order SIM card isbeing assigned to a cellular router by SIM directory server 804. In onevariant, processing unit of the SIM bank may communicate with a SIM cardfor testing without using a wireless communication module. In onevariant, a SIM directory server may issue a test instruction to a SIMbank to test a SIM card.

In one variant, a SIM director server may have one or more wirelesscommunication modules. Processing unit of the SIM director server mayuse the one or more wireless communication modules to test a SIM card ina SIM bank if the SIM card is operational. This avoids the situationthat an out-of-order SIM card is being assigned to a cellular router bySIM directory server 804. In one variant, processing unit of the SIMdirectory server may communicate with a SIM card for testing withoutusing a wireless communication module.

FIG. 12 illustrates a basic block diagram of an exemplary SIM directoryserver according to one of the embodiments of the present invention. SIMdirectory server 1210 comprises data bus 1208, memory 1201, processingunit 1202, storage unit 1203 and network interface 1207. Processing unit1202 connects directly to memory 1201.

Processing unit 1202 executes program instructions or code segments forimplementing embodiments of the SIM directory server of the presentinvention.

FIG. 13 illustrates a flow-chart of processes being performed accordingto one of the embodiments of the present invention. FIG. 13 should beviewed in conjunction with FIG. 8 . When a cellular router is movingfrom one region to another region, roaming charge may be imposed forusing a non-local SIM card. In such case tariff of using another SIMcard from a SIM bank may be lowered than the SIM card that is beingused. The SIM that is being used may be held in the cellular router orin a SIM bank.

At process 1301, a plurality of connections are established with thesame or different wireless service providers using SIM card connectivityinformation originated from SIM cards held in one or more SIM banks. Theplurality of connections may be established through a plurality ofwireless communication module, such as wireless communication module 307a and wireless communication module 307 b, respectively. There is alsono limitation that the present invention is limited to two wirelesscommunication modules. There may be five, ten, fifty, one hundred oreven more wireless communication modules. There is also no limitation tothe number of connections.

At process 1302, processing unit of cellular router 800 determines ifone or more connections needs to be disconnected. One of the reasons todisconnect a connection' is tariff. Another reason is location of thecellular router 800. Another reason is reaching the maximum amount ofdata allowed in a period of time. Processing unit of cellular router 800may also disconnect a connection based on an instruction received from auser, an administrator or a remote server. If there is no need todisconnect any established connection, the processes stop at process1303. For illustration purpose only, processing unit of cellular router800 determines that a connection established using wirelesscommunication module 307 a should be disconnected.

At process 1304, processing unit of cellular router 800 instructswireless communication module 307 a to disconnect the connection. Afterthe disconnection, wireless communication module 307 a may then be usedto establish a new connection.

At process 1305, processing unit of cellular router 800 requests for SIMcard availability information by sending a request through wirelesscommunication module 307 b and the second connection to SIM directoryserver 804. There is no limitation that only wireless communicationmodule 307 b is allowed to be used. When there are more connections, oneor more of the connections may be used to send the request. For example,if there is a third wireless communication module has alreadyestablished a connection or a connection established using an Ethernetcable through a network interface, the connection may be used.

At process 1306, processing unit of cellular router 800 receives a replyfrom SIM directory server 804. The reply may encapsulate a first SIMcard connectivity information, which may include the address of a firstSIM bank and a first SIM card selected by processing unit of SIMdirectory server 804. For illustration purpose, the first SIM card islocated at SIM bank 805 a.

At process 1307, processing unit of cellular router 800 contacts SIMbank 805 a to retrieve a response from the first SIM card. Processingunit of cellular router 800 processes the response and instructswireless communication module 307 a to establishes a new connection atprocess 1308. Processing unit of cellular router 800 is then capable ofusing the new connection to communicate with other hosts and servers,including the Internet and email servers.

Therefore, after process 1308, the remaining plurality of connectionsand the new connection may be used for communications. In one example,connections may be aggregated together to form one aggregatedconnection. Processing unit of cellular router 800 may use theaggregated connection to communicate with SIM directory server 804 andto connect to other hosts and servers.

After process 1308, process 1302 will be repeated in order to determineif there are other connections should be disconnected. In one variant,this embodiment may end after process 1308 without going back to process1302.

There is no limitation that MCU and interface circuits must be discretecomponents. If processing unit is capable of providing thefunctionalities of MCU and/or interface circuits, MCU and interfacecircuits may be omitted. For example, one processing unit may be used torealize MCU 314 and processing unit 312. In another example, if MCU 306or MCU 314 is capable of communicating with a SIM card in SIM socket,interface circuits may be omitted. In another example, if processingunit is capable of communicating with a SIM card in SIM socket, MCU andinterface circuits may be omitted.

In one embodiment, communications between a cellular router, such ascellular routers 330 and 801, and a SIM bank or a SIM directory serverare carried out with redundancy in order to increase the reliability.For example, a plurality of same requests and/or responses may be sent.The first received request or response will be used for processing whileother requests or responses will be discarded.

There is no limitation that the present invention is limited to cellularrouter 111. For example, cellular router may be replaced with anelectronic device that provides networking functions to other devices orto itself only. The electronic device may send information to anotherelectronic device through the Internet. For example, the electronicdevice may be a lightbulb with Internet connectivity and a communicationdevice in a vehicle.

1. A method of establishing multiple connections at a wirelesscommunication device, comprising: (a) establishing a plurality ofconnections using a plurality of wireless communication modulesrespectively; (b) determining if at least one first connection in theplurality of connections needs to be disconnected; (c) when the at leastone first connection is determined to be disconnected, instructing atleast one respective wireless communication module in the plurality ofwireless communication modules to disconnect the at least one firstconnection; (d) disconnecting the at least one first connection; (e)when the at least one first connection is disconnected, retrievingconnectivity information using at least one second connection in theplurality of connections; and (f) establishing, based on theconnectivity information, at least one third connection using the atleast one respective wireless communication module.
 2. The method ofclaim 1, wherein the at least one first connection is determined to bedisconnected based on one of: (i) a tariff, (ii) a location of thewireless communication device, (iii) a maximum amount of data allowed ina period of time, and (iv) an instruction received from a user, anadministrator or a remote server.
 3. The method of claim 1, wherein: theconnectivity information is retrieved by contacting at least onesubscriber identification module (SIM) bank to retrieve at least oneresponse from at least one SIM card; and the at least one response isretrieved by sending at least one request to the at least one SIM cardand is used to establish the at least one third connection.
 4. Themethod of claim 4, wherein the at least one SIM card is housed in the atleast one SIM bank and is selected by the at least one SIM bank.
 5. Themethod of claim 4, wherein the connectivity information includes atleast one address of the at least one SIM bank and at least one addressof the at least one SIM card.
 6. The method of claim 1, furthercomprising: (g) repeating steps (b) to (f) to determine if at least onefourth connection needs to be disconnected.
 7. The method of claim 1,further comprising: (g) aggregating the plurality of connections and theat least one third connection to form one aggregated connection.
 8. Themethod of claim 1, wherein the plurality of connections are establishedusing respectively a plurality of SIM cards housed in a same SIM bank ordifferent SIM banks.
 9. The method of claim 8, wherein the plurality ofSIM cards are from a same wireless service provider or differentwireless service providers.
 10. The method of claim 1, furthercomprising: (g) when no connection is determined to be disconnected,using the plurality of connections established by the wirelesscommunication device.
 11. A wireless communication device, comprising:at least one non-transitory computer readable medium; and at least oneprocessing unit; wherein the at least one non-transitory computerreadable medium stores program instructions executable by the at leastone processing unit for: (a) establishing a plurality of connectionsusing a plurality of wireless communication modules respectively; (b)determining if at least one first connection in the plurality ofconnections needs to be disconnected; (c) when the at least one firstconnection is determined to be disconnected, instructing at least onerespective wireless communication module in the plurality of wirelesscommunication modules to disconnect the at least one first connection;(d) disconnecting the at least one first connection; (e) when the atleast one first connection is disconnected, retrieving connectivityinformation using at least one second connection in the plurality ofconnections; and (f) establishing, based on the connectivityinformation, at least one third connection using the at least onerespective wireless communication module.
 12. The wireless communicationdevice of claim 11, wherein the at least one first connection isdetermined to be disconnected based on one of: (i) a tariff, (ii) alocation of the wireless communication device, (iii) a maximum amount ofdata allowed in a period of time, and (iv) an instruction received froma user, an administrator or a remote server.
 13. The wirelesscommunication device of claim 11, wherein: the connectivity informationis retrieved by contacting at least one subscriber identification module(SIM) bank to retrieve at least one response from at least one SIM card;and the at least one response is retrieved by sending at least onerequest to the at least one SIM card and is used to establish the atleast one third connection.
 14. The wireless communication device ofclaim 14, wherein the at least one SIM card is housed in the at leastone SIM bank and is selected by the at least one SIM bank.
 15. Thewireless communication device of claim 14, wherein the connectivityinformation includes at least one address of the at least one SIM bankand at least one address of the at least one SIM card.
 16. The wirelesscommunication device of claim 11, wherein the at least onenon-transitory computer readable medium stores further programinstructions executable by the at least one processing unit for: (g)repeating steps (b) to (f) to determine if at least one fourthconnection needs to be disconnected.
 17. The wireless communicationdevice of claim 11, wherein the at least one non-transitory computerreadable medium stores further program instructions executable by the atleast one processing unit for: (g) aggregating the plurality ofconnections and the at least one third connection to form one aggregatedconnection.
 18. The wireless communication device of claim 11, whereinthe plurality of connections are established using respectively aplurality of SIM cards housed in a same SIM bank or different SIM banks.19. The wireless communication device of claim 18, wherein the pluralityof SIM cards are from a same wireless service provider or differentwireless service providers.
 20. The wireless communication device ofclaim 11, wherein the at least one non-transitory computer readablemedium stores further program instructions executable by the at leastone processing unit for: (g) when no connection is determined to bedisconnected, using the plurality of connections established by thewireless communication device.